/**
 * API 配置
 * 统一管理所有API相关配置
 * 修改接口根地址时，只需修改此文件即可
 */

/**
 * API基础地址配置
 *
 * ⚠️ 重要：如需修改接口根地址，只需修改此处的默认值即可
 *
 * 配置说明：
 * - 开发环境：使用完整的API地址（协议+域名/IP+端口）
 * - 生产环境：留空，直接使用当前域名、协议和端口（相对路径）
 *
 * 示例：
 * - 开发环境：'http://101.34.91.55:8090' （使用完整地址）
 * - 生产环境：'' （使用相对路径，跟随当前域名）
 */
export const API_BASE_URL =
  import.meta.env.VITE_API_BASE_URL ||
  (import.meta.env.DEV ? "http://101.34.91.55:8090" : "");

// API版本前缀
export const API_VERSION = "/api/v1";

// 完整的API基础路径（包含版本）
export const API_BASE_PATH = `${API_BASE_URL}${API_VERSION}`;

// 各个模块的API端点（包含版本前缀）
export const API_ENDPOINTS = {
  // 认证相关
  AUTH: {
    LOGIN: "/api/v1/auth/login",
  },

  // 对话相关
  CONVERSATIONS: {
    LIST: "/api/v1/conversations/",
    CREATE: "/api/v1/conversations/",
    UPDATE: (id) => `/api/v1/conversations/${id}`,
    DELETE: (id) => `/api/v1/conversations/${id}`,
  },

  // 聊天相关
  CHAT: {
    UPLOAD: (cid) => `/api/v1/chat/upload/${cid}`,
    SEND: (cid) => `/api/v1/chat/send/${cid}`,
  },

  // 知识库相关
  KNOWLEDGE: {
    UPLOAD: "/api/v1/knowledge/upload",
    LIST: "/api/v1/knowledge/",
    CREATE: "/api/v1/knowledge/",
    UPDATE: (id) => `/api/v1/knowledge/${id}`,
    DELETE: (id) => `/api/v1/knowledge/${id}`,
  },
};

/**
 * 获取完整的API URL
 * @param {string} endpoint - API端点（不包含版本前缀）
 * @returns {string} 完整的API URL
 */
export const getApiUrl = (endpoint) => {
  // 如果endpoint已经包含完整URL，直接返回
  if (endpoint.startsWith("http://") || endpoint.startsWith("https://")) {
    return endpoint;
  }

  // 确保endpoint以/开头
  const normalizedEndpoint = endpoint.startsWith("/")
    ? endpoint
    : `/${endpoint}`;

  // 如果endpoint已经包含/api/v1，直接拼接baseURL
  if (normalizedEndpoint.startsWith(API_VERSION)) {
    return `${API_BASE_URL}${normalizedEndpoint}`;
  }

  // 否则拼接完整路径
  return `${API_BASE_URL}${API_VERSION}${normalizedEndpoint}`;
};
